package com.ruoyi.project.bas.basSupplierType.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import com.ruoyi.common.core.domain.Ztree;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.project.bas.basSupplierType.domain.BasSupplierType;
import com.ruoyi.project.bas.basSupplierType.mapper.BasSupplierTypeMapper;
import com.ruoyi.project.bas.basSupplierType.service.IBasSupplierTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.text.Convert;

/**
 * 供应商基础分类Service业务层处理
 * 
 * @author qxq
 * @date 2023-05-30
 */
@Service
public class BasSupplierTypeServiceImpl implements IBasSupplierTypeService
{
    @Autowired
    private BasSupplierTypeMapper basSupplierTypeMapper;

    /**
     * 查询供应商基础分类
     * 
     * @param supplierTypeId 供应商基础分类主键
     * @return 供应商基础分类
     */
    @Override
    public BasSupplierType selectBasSupplierTypeBySupplierTypeId(Long supplierTypeId)
    {
        return basSupplierTypeMapper.selectBasSupplierTypeBySupplierTypeId(supplierTypeId);

    }

    /**
     * 查询供应商基础分类列表
     * 
     * @param basSupplierType 供应商基础分类
     * @return 供应商基础分类
     */
    @Override
    public List<BasSupplierType> selectBasSupplierTypeList(BasSupplierType basSupplierType)
    {
        return basSupplierTypeMapper.selectBasSupplierTypeList(basSupplierType);
    }

    /**
     * 新增供应商基础分类
     * 
     * @param basSupplierType 供应商基础分类
     * @return 结果
     */
    @Override
    public int insertBasSupplierType(BasSupplierType basSupplierType)
    {
        basSupplierType.setCreateTime(DateUtils.getNowDate());
        basSupplierType.setCreateBy(ShiroUtils.getLoginName());
        basSupplierType.setSupplierTypeId(Long.valueOf(basSupplierType.getSupplierTypeNo()));
        return basSupplierTypeMapper.insertBasSupplierType(basSupplierType);
    }

    /**
     * 修改供应商基础分类
     * 
     * @param basSupplierType 供应商基础分类
     * @return 结果
     */
    @Override
    public int updateBasSupplierType(BasSupplierType basSupplierType)
    {
        basSupplierType.setUpdateTime(DateUtils.getNowDate());
        return basSupplierTypeMapper.updateBasSupplierType(basSupplierType);
    }

    /**
     * 批量删除供应商基础分类
     * 
     * @param supplierTypeIds 需要删除的供应商基础分类主键
     * @return 结果
     */
    @Override
    public int deleteBasSupplierTypeBySupplierTypeIds(String supplierTypeIds)
    {
        return basSupplierTypeMapper.deleteBasSupplierTypeBySupplierTypeIds(Convert.toStrArray(supplierTypeIds));
    }

    /**
     * 删除供应商基础分类信息
     * 
     * @param supplierTypeId 供应商基础分类主键
     * @return 结果
     */
    @Override
    public int deleteBasSupplierTypeBySupplierTypeId(Long supplierTypeId)
    {
        return basSupplierTypeMapper.deleteBasSupplierTypeBySupplierTypeId(supplierTypeId);
    }

    /**
     * 查询供应商基础分类树列表
     * 
     * @return 所有供应商基础分类信息
     */
    @Override
    public List<Ztree> selectBasSupplierTypeTree()
    {
        List<BasSupplierType> basSupplierTypeList = basSupplierTypeMapper.selectBasSupplierTypeList(new BasSupplierType());
        List<Ztree> ztrees = new ArrayList<Ztree>();
        for (BasSupplierType basSupplierType : basSupplierTypeList)
        {
            Ztree ztree = new Ztree();
            ztree.setId(basSupplierType.getSupplierTypeId());
            ztree.setpId(basSupplierType.getParentId());
            ztree.setName(basSupplierType.getSupplierTypeName());
            ztree.setTitle(basSupplierType.getSupplierTypeName());
            ztrees.add(ztree);
        }
        return ztrees;
    }
}
